package com.yunji.framework_template.orm.persistence.mapper;

import java.util.List;
import java.util.Map;

import com.yunji.framework_template.common.web.Page;
import com.yunji.framework_template.orm.persistence.model.SitesInfo;

public interface SitesInfoMapper {

    int deleteByPrimaryKey(Integer id);

    int insert(SitesInfo record);

    int insertSelective(SitesInfo record);

    SitesInfo selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SitesInfo record);

    int updateByPrimaryKey(SitesInfo record);
    
    int updateVisitsTime(SitesInfo record);

    List<SitesInfo> selectByCondition(SitesInfo record);

    List<SitesInfo> selectAll();

    List<SitesInfo> selectByPage(Page page);

    /**
     * 查询指定国家所有的顶级网站
     * 
     * @param countryCode
     * @return
     */
    List<SitesInfo> selectTopSites();

    /**
     * 查询世界顶级网站
     * 
     * @param countryCode
     * @return
     */
    List<SitesInfo> selectWorldTopSites();

    /**
     * 根据国家(country_code)、分类ID(type_id)、查询的条数(topSize)查询指定国家下指定类型指定条数的记录，做为该分类下的top sites
     * 
     * @param param
     * @return
     */
    List<SitesInfo> selectTopByType(Map param);

    /**
     * 根据国家(country_code)、分类ID(type_id)、查询的条数(topSize)[随机]查询指定国家下指定类型指定条数的记录，做为该分类下的top sites
     * 
     * @param param
     * @return
     */
    List<SitesInfo> selectRandomTopByType(Map param);

    Integer count(SitesInfo record);

    int deleteByCondition(SitesInfo record);
}
